/* 
连接数据库的函数

连接数据库成功后, 立即插入一个用户: admin/111111
  查询admin用户, 如果没有才插入
*/

//引入mongoose
const mongoose = require('mongoose');
//引入md5
const md5 = require('md5');
const UserModel = require('./models/UserModel');

module.exports = () => {
    // 连接数据库, 产生一个promise(当连接成功后就会自动变为成功的promise)
    const promise = mongoose.connect('mongodb://localhost:27017/user_manage')
    // 绑定连接成功的监听 => 提示连接数据库成功
    mongoose.connection.on('open', async () => {
        console.log('数据库连接成功')
        /* 
  连接数据库成功后, 立即插入一个用户: admin/111111
  查询admin用户, 如果没有才插入
  */
        const user = await UserModel.findOne({
            username: 'atguigu'
        })
        console.log('user', user)
        //用户不存在,就创建用户数据
        if (!user) {
            UserModel.create({
                username: 'atguigu',
                pwd: md5('111111'),
                profile: '/upload/admin.png'
            })
        }

        for (let index = 0; index < 20; index++) {
            UserModel.create({
                username: 'wh2201516-' + (index + 1),
                pwd: md5('111111'),
                profile: '/upload/admin.png'
            })
        }
    })


    // 绑定连接失败的监听 => 提示连接数据库失败
    mongoose.connection.on('error', () => console.log('数据库连接失败'))
    // 返回连接的promise => 用于在app中连接成功后启动服务
    return promise
}